Microprocessors are used on circuit boards to control or perform a large variety of functions. One of these functions is the set up and control of application specific integrated circuits (ASIC). The microprocessor controls the ASIC by running a program that is stored or downloaded into memory. The program or firmware that is run on the microprocessor needs to be analyzed to make sure that the program is running correctly. Typically the microprocessor is in its own integrated circuit (IC) connected to the ASIC by the circuit board. Because the microprocessor is in its own IC all of the signals going to and coming from the microprocessor are available for probing by logic analyzers or other test equipment.
A logic analyzer can use the signals coming from the microprocessor to create a listing of mnemonic program code indicative of those signals. This process is called inverse assembly or disassembly and is done by the inverse assembler inside a logic analyzer. This process allows the code to be checked or debugged in its mnemonic form instead of trying to debug the code in hexadecimal or binary format.
There is a trend to incorporate the microprocessor into the ASIC. This reduces the cost of the system by eliminating an IC, reducing signal lines and reducing board real estate by combining or embedding the microprocessor into the ASIC. This embedded microprocessor still needs to have its signals available for analysis so that the program running on it can be analyzed and debugged. One of the limiting factors on an ASIC is the number of pins or signals that are available to enter or exit from the IC package. Currently all the signals for disassembly of the microprocessor program are required to be available external to the ASIC. This consumes more of the available pins or signals of the ASIC than is desired. There is a need to reduce the required number of signals from the embedded microprocessor to allow for disassembly of those signals into the program used to run the microprocessor.